home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-22 | 1.1 KB | 51 lines | [TEXT/MPS ] |
- //-----------------------------------------------------------------------------
- // FWCyStrm.cpp
- // Cyberdog Stream Utilities
- //-----------------------------------------------------------------------------
-
- #include "FWFrameW.hpp"
- #include "FWCyStrm.h"
- #include "CyberStream.xh"
-
- const short FW_kCyberStreamDone = (kCDErrorOccurred | kCDDownloadComplete | kCDAbortComplete);
-
- FW_DEFINE_AUTO (FW_CCyberStream)
-
- void FW_CCyberStream::Assign (CyberStream* cs)
- {
- Environment* ev = somGetGlobalEnvironment();
-
- if (fStream) {
- // Is it deletable or must it be aborted?
- short status = fStream->GetStreamStatus(ev);
- if (!(status & FW_kCyberStreamDone)) {
- fStream->Abort (ev);
- do {
- ::SystemTask();
- status = fStream->GetStreamStatus(ev);
- }
- while (!(status & FW_kCyberStreamDone));
- }
- delete fStream;
- }
-
- fStream = cs;
- }
-
- FW_DEFINE_AUTO (FW_CCyberBuffer)
-
- FW_CCyberBuffer::FW_CCyberBuffer (Environment* ev, CyberStream* cs)
- : fStream (cs)
- {
- FW_ASSERT (cs);
- cs->GetBuffer (ev, &fBuffer, &fSize);
- }
-
- FW_CCyberBuffer::~FW_CCyberBuffer ()
- {
- Environment* ev = somGetGlobalEnvironment();
-
- fStream->ReleaseBuffer (ev, fBuffer);
- }
-
-